import torch
#模型的加载
#方式1（对应保存方式1）用于加载模型
import torchvision
from torch import nn
from model_save import * #将model_save里面的所有模型导入过来
model = torch.load("vgg16_method1.pth")
# print(model)
#方式2（对应于保存方式2）
# model = torch.load("vgg16_method2.pth")
# print(model)#此时输出的是的字典形式的参数
#如果想通过保存的参数加载模型网络，方法为：
vgg16 = torchvision.models.vgg16(pretrained=False)
vgg16.load_state_dict(torch.load("vgg16_method2.pth"))#通过字典的方式加载模型（这句就算没有，只通过上面的命令也是可以加载的啊？？？？）
# print(vgg16)


#陷进1

# model = torch.load("mymodule_method1.pth")
# print(model)#此时会报错，应当将网络模型的定义也放过来，如下所示：
#但其实在真正写项目过程中，会将模型放在一个文件中
#只是不同写模型的实例化即mymodule = MyModule()这句
# class MyModule(nn.Module):
#     def __init__(self):
#         super(MyModule, self).__init__()
#         self.conv1 = nn.Conv2d(3,64,3)
#
#     def forward(self,x):
#         x = self.conv1(x)
#         return x

#也可以使用from model_save import * 将model_save里面的所有模型导入过来，就不用再在上面进行模型的定义了
model = torch.load("mymodule_method1.pth")
print(model)